Applicant's invention relates to methods and apparatuses for receiving spread spectrum radio signals, such as digitally modulated signals in a Code Division Multiple Access (CDMA) mobile radio telephone system, and more particularly to a RAKE receiver scheme for such signals.
In CDMA communication systems, transmitted information signals overlap in both time and frequency as described in, e.g., N. Tzannes, Communication and Radar Systems, pp. 237-239, Prentice-Hall, Inc. (1985). An informational data stream to be transmitted is impressed upon a much-higher-rate data stream known as a "signature sequence". Typically, the signature sequence data are binary, providing a bit stream. One way to generate this signature sequence is with a pseudo-noise (PN) process that appears random, but can be replicated by an authorized receiver. The informational data stream and the high-bit-rate signature sequence stream are combined by multiplying the two bit streams together, assuming the binary values of the two bit streams are represented by +1 or -1. This combination of the higher-bit-rate signal with the lower-bit-rate data stream is called "coding" or "spreading" the informational data stream. Each informational data stream, or channel, is allocated a unique signature sequence, or "spreading code".
A plurality of coded information signals modulate a radio-frequency (RF) carrier by, for example, quadrature phase shift keying (QPSK), and are jointly received as a composite signal at a receiver. Each of the coded signals overlaps all of the other coded signals, as well as noise-related signals, in both frequency and time. If the receiver is authorized, the composite signal is correlated with one of the unique spreading codes, and the corresponding information signal can be isolated and decoded.
One CDMA technique, called "traditional CDMA with direct spreading", uses a spreading code to represent one bit of information. Receiving the transmitted code or its complement (the opposite of each bit of the code sequence) indicates whether the information bit is a "-1" or "+1". The signature sequence usually comprises N bits, and each bit is called a "chip". The entire N-chip sequence, or its complement, is referred to as a transmitted symbol. The receiver correlates the received signal with the known signature sequence of its own signature sequence generator to produce a normalized value ranging from -1 to +1. When a large positive correlation results, a "-1" is detected; when a large negative correlation results, a "+1" is detected. Various aspects of PN codeword detection with correlators are described in F. Stremler, Introduction to Communication Systems, 2d ed., pp. 412-418, Addison-Wesley Publishing Co. (1982).
Another CDMA technique, called "enhanced CDMA with direct spreading" allows each transmitted sequence to represent more than one bit of information. A set of codewords, typically orthogonal codewords or bi-orthogonal codewords, is used to encode a group of information bits into a much longer code sequence or code symbol. A signature sequence, or "scramble mask", is modulo-2 added to the binary code sequence before transmission. At the receiver, the known scramble mask is used to descramble the received signal, which is then correlated against all possible codewords. The codeword having the largest correlation value indicates which codeword was most likely sent, indicating which information bits were most likely sent. One common orthogonal code is the Walsh-Hadamard (WH) code.
In both traditional and enhanced CDMA, the "information bits" referred to above can also be coded bits, where the code used is a block or convolutional code. One or more information bits can form a data symbol. Also, the signature sequence, or scramble mask, can be much longer than a single code sequence, in which case a subsequence of the signature sequence is added to the code sequence.
There are a number of advantages associated with CDMA communication techniques. The capacity limits of CDMA-based cellular telephone systems are projected to be up to twenty times that of existing analog technology due to wideband CDMA's improved coding gain/modulation density, voice activity gating, sectorization, and reuse of the same spectrum in every cell. CDMA transmission of voice by a high-bit-rate decoder insures superior, realistic voice quality. CDMA also provides for variable data rates allowing many different grades of voice quality to be offered. The scrambled signal format of CDMA completely eliminates cross-talk and makes it very difficult and costly to eavesdrop or track calls, insuring greater privacy for callers and greater immunity from airtime fraud. fraud.
In many radio communication systems, the received signal includes two components, an I (in-phase) component and a Q (quadrature) component. This results because the transmitted signal has two components, and/or the intervening channel or the lack of a coherent carrier reference causes the transmitted signal to be divided into I and Q components. In a typical receiver using digital signal processing, the received I and Q component signals are sampled every T.sub.c seconds, where T.sub.c is the duration of a chip, and the samples are stored for further processing.
In mobile communication systems, signals transmitted between base and mobile stations typically suffer from echo distortion or time dispersion, caused by, for example, signal reflections from large buildings or nearby mountain ranges. Multipath dispersion occurs when a signal proceeds to the receiver along not one but many paths so that the receiver hears many echoes having different and randomly varying delays and amplitudes. Thus, when multipath time dispersion is present in CDMA system, the receiver receives a composite signal of multiple versions of the transmitted symbol that have propagated along different paths (referred to as "rays"), some of which may have relative time delays of less than one symbol period.
Each distinguishable "ray" has a certain relative time of arrival k T.sub.c seconds and spans N of the I and Q chip samples, since each signal image is an N-chip sequence in a traditional CDMA system. As a result of multipath time dispersion, the correlator outputs several smaller spikes rather than one large spike. Each ray that is received after the symbol period (i.e., if the time delay caused by a reflection exceeds one symbol period) appears as an uncorrelated interfering signal that reduces the total capacity of the communication system. To detect optimally the transmitted symbols (bits), the spikes received must be combined in an appropriate way.
Typically, this can be done by a RAKE receiver, which is so named because it "rakes" all the multipath contributions together. Various aspects of RAKE receivers are described in R. Price et al., "A Communication Technique for Multipath Channels", Proc. IRE, vol. 46, pp. 555-570 (March 1958); G. Turin, "Introduction to Spread-Spectrum Antimultipath Techniques and Their Application to Urban Digital Radio", Proc. IEEE, vol. 68, pp. 328-353 (March 1980); and J. Proakis, Digital Communications, 2d ed., pp. 729-739, McGraw-Hill, Inc. (1989).
A RAKE receiver uses a form of diversity combining to collect the signal energy from the various received signal paths, i.e., the various signal rays. Diversity provides redundant communication channels so that when some channels fade, communication is still possible over non-fading channels. A CDMA RAKE receiver combats fading by detecting the echo signals individually using a correlation method and adding them algebraically (with the same sign). Further, to avoid intersymbol interference, appropriate time delays are inserted between the respective detected echoes so that they fall into step again.
An example of a multipath profile of a received composite signal is illustrated in FIG. 1. The ray that propagates along the shortest path arrives at a time T.sub.0 with an amplitude A.sub.0, and rays propagating along longer paths arrive at times T.sub.1, T.sub.2, T.sub.3 with amplitudes A.sub.1, A.sub.2, A.sub.3, respectively. For simplicity, the typical RAKE receiver assumes that the time delays between the rays are a constant, i.e., T.sub.1 =T.sub.0 +dT, T.sub.2 =T.sub.0 +2dT, and T.sub.3 =T.sub.0 +3dT for the profile shown; the time delays (and amplitudes) are usually estimated from the received composite signal's history.
In one form of RAKE receiver, correlation values of the signature sequence with the received signals at different time delays are passed through a delay line that is tapped at the expected time delay (dt), i.e., the expected time between receiving echoes. The outputs at the RAKE taps are then combined with appropriate weights. Such a receiver searches for the earliest ray by placing a tap at T.sub.0, and for a ray delayed by dt by placing a tap at T.sub.0 +dt, and so forth. The RAKE tap outputs having significant energy are appropriately weighted and combined to maximize the received signal-to-noise-and-interference ratio. Thus, the total time delay of the delay line determines the amount of arrival time delay that can be searched. In one useful CDMA system, up to 128 microseconds (.mu.sec) can be searched, corresponding to thirty-two chips, and the total time delay of the taps that can be combined is thirty-two .mu.sec, corresponding to an eight-chip window movable within the thirty-two-chip total delay.
FIGS. 2A and 2B illustrate how manipulating the RAKE taps adapts the RAKE receiver to signals that have different delays. In FIG. 2A, eight taps, which are identified by the arrival times T.sub.0 -T.sub.7, are provided, of which only the outputs of taps T.sub.4 -T.sub.7 are given non-zero weights W.sub.4 -W.sub.7, respectively. In FIG. 2B, only the outputs of taps T.sub.0 -T.sub.3 are given non-zero weights W.sub.0 -W.sub.3, respectively. When the weights W.sub.0 -W.sub.3 are respectively the same as the weights W.sub.4 -W.sub.7, the receiver is adapted to the same signal, but for a time of arrival T.sub.0 rather than T.sub.4. In a "digital" RAKE, or DRAKE, receiver, the weights are either 0 or 1, as described in the paper by Turin cited above.
A diagram of a conventional RAKE receiver using post-correlator, coherent combining of different rays is shown in FIG. 3. A received radio signal is demodulated by, for example, mixing it with cosine and sine waveforms and filtering the signal in an RF receiver 1, yielding I and Q chip samples. These chip samples are collected in a buffer memory that is composed of two buffers 2a, 2b for the I, Q samples, respectively. As illustrated in FIG. 3, the bottom of each buffer 2a, 2b contains the most recently received chip samples.
A multiplexer 3 receives the buffered chip samples and sends complex correlators 4a, 4b a range of I chip samples and the corresponding range of Q chip samples. The range selected includes N samples corresponding to the N-chip sequence arriving at a certain time. For example, if the buffers 2a, 2b each contain 159 chip samples (numbered 0-158) and N is 128, then the multiplexer 3 would send chip samples numbered i through (i+127) from the I buffer 2a, and chip samples numbered i through (i+127) from the Q buffer 2b to the correlator 4a, where i is the discrete time index of the signal rays from when the buffers were first filled. Two different sets of chip samples, i.e., two different received sample ranges and hence a different signal ray, are provided by the multiplexer 3 to the correlator 4b. A complex correlation value is formed by each correlator 4a, 4b that correlates its two sets of signal samples I, Q to the known signature sequence, or spreading code. Of course, the multiplexer 3 can provide the received samples either serially or in parallel.
In general, a complex correlator correlates a complex input stream (I+jQ samples) to a complex known sequence, producing a complex correlation value. If the signature sequence is not complex, each complex correlator can be implemented as two scalar correlators in parallel, which may be defined as a "half-complex" correlator. If the signature sequence is complex, the complex correlators correlate a complex input to a complex sequence, giving rise to "full-complex" correlators. It is to be understood that the term "complex correlator" will be used hereinafter to refer to both of the aforementioned scenarios.
Following correlation, the complex correlation values are transmitted to complex multipliers 5 that multiply the correlation values by the complex weights that each consist of a real part and an imaginary part. Typically, only the real parts of the products of the complex correlation values and weights are sent to an accumulator 6, which sums the weighted correlations for all the signal rays processed. The accumulated result is sent to a threshold device 7, which detects a binary "0" if the input is greater than a threshold, or a binary "1" if the input is less than the threshold.
In mathematical terms, suppose X(n)=I(n)+jQ(n) are the chip samples received by the receiver, where I(n) are the I component samples, Q(n) are the Q component samples, and n is the chip sample index corresponding to a respective discrete time. In FIG. 3, I(n) are stored in buffer 2a and Q(n) are stored in buffer 2b. The multiplexer 3 selects a range of I samples and a range of Q samples corresponding to the same ray. If M(k,n)+M.sub.I (k,n)+jM.sub.Q (k,n) is the multiplexer output for ray k, giving N samples (n=0, . . . N-1), then M(k,n)=X(n+k) and M.sub.I (k,n)=I(n+k) and M.sub.Q (k,n)=Q(n+k).
The complex correlator 4a correlates the range of data samples from the multiplexer 3 to the known spreading code sequence. Consider data samples X(k), X(k+1), . . . X(k+N-1), which are discrete time samples of the received data. If the receiver is trying to detect a code sequence C(0), C(1), . . . C(N-1), which consists of N values (usually .+-.1 values), the correlator 4a correlates some set of N data values with the N code sequence values as follows: ##EQU1## where the index k indicates where to start in the data sequence. This corresponds to a relative time of arrival of the signal, and as described above different arrival times correspond to different signal rays. Thus, ray k corresponds to a range of data values needed: {X(k), X(k+1), . . . X(k+N-1)}. If N is large, rays k, k+1 correspond to ranges that substantially overlap.
The computation of R(k) can be performed by accessing the input data range in parallel or serially. Whether the correlation is performed in parallel or serially, each data value X(n) consists of b bits, which can be accessed and used all at once (parallel computation) or one at a time (bit serial approach).
FIG. 4 illustrates a parallel approach. A data buffer 53 stores consecutive time samples, X(n), of the received signal, and a multiplexer 54 selects a range of N data values, {X(k), X(k+1), . . . , X(k+N-1)}, which are sent to a correlator 55. A group of multipliers 56, which corresponds to the inputs to the correlator 55, multiplies the data values by corresponding spreading code sequence values C(0), C(1), . . . C(N-1). The products are summed by an adder 57 to form the correlation value R(k).
FIG. 5 illustrates serially accessing the input range to compute R(k). An input buffer 58 stores the received data samples. The buffer 58 may be only one sample long because only one sample will be correlated at a time. If the buffer 58 is more than one sample long, a multiplexer 59 would be provided to select a particular sample, X(k+i), where i is determined by a suitable control processor 60. The sample stored or selected is sent to a correlator 61, which computes the product of the sample X(k+i) with one element, C(i), of the code sequence using a multiplier 62. This product is combined by an adder 63 with the contents of an accumulator 64 that stores accumulated past products. The contents of the accumulator 64 is originally set to zero, and i is stepped from 0 to N-1, allowing the accumulation of N products. After N products have been accumulated, the contents of the accumulator 64 is output as the correlation value R(k).
Referring again to FIG. 3, regardless of the correlation approach used, the correlator 4a for ray k correlates the multiplexer output M(k,n) against the real code sequence C(n), producing a complex correlation value R(k)=R.sub.I (k)+jR.sub.Q (k) where: ##EQU2##
The correlation values are multiplied by the complex weights W(k)=W.sub.I (k)+jW.sub.Q (k), and the results are accumulated into the decision statistic, Z, which is given by: ##EQU3## The quantity Z is then thresholded in the threshold device 7 to determine whether a "-1" or a "+1" was sent.
FIG. 6 illustrates the general arrangement of a non-coherent DRAKE receiver 10 for a system using traditional CDMA with direct spreading. In a DRAKE receiver, the tap weights are either 0 or 1, which means simply that the correlation value from a particular tap is either added to a total or not; also, in non-coherent DRAKE, the square magnitudes of the selected correlation values are summed, which obviates the need to align them in phase before summing. Accordingly, the weights can be applied either before or after the square magnitudes are determined. The main difference from the coherent receiver shown in FIG. 3 is that the set of complex multipliers 5 that apply the complex weights to respective complex correlation values is replaced by a squared-magnitude processor 15a followed by weighting with 0 or 1 in a weight processor 15b.
In FIG. 6, a suitable receiver/digitizer 11 amplifies, filters, demodulates, analog-to-digital converts, and finally buffers the in-phase and quadrature components of the received composite radio signal into streams of complex digital samples I, Q. The sample streams I, Q are processed by a set 14 of correlators that compute the values of correlations of the sequence of signal samples with shifts of the receiver's spreading code sequence that are generated by respective ones of a set of local code generators. Of course, one code generator and suitable components for shifting the generator's code sequence can be used instead. For a multipath profile such as that shown in FIG. 1, the set 14 could comprise four correlators, one for each of four shifts of the spreading code, and the shifts of each code sequence would ideally correspond to the arrival times T.sub.0 -T.sub.3. It will be understood that the signal sample streams I, Q may be processed either serially or initially collected in a memory and provided in parallel to the correlators.
Because the code sequences are typically only real-valued, either scalar correlators can separately operate on the I, Q samples or half-complex correlators can simultaneously compute the correlations of the I, Q samples with the code sequence shifts. In addition, the correlation values may be averaged over a number of transmitted symbols to determine an average signal strength for the decoded signal. The squared magnitudes of the four complex correlation values for the four shifts of the spreading code are then computed from the in-phase (real part) and quadrature (imaginary part) component samples by the squared-magnitude processor 15a.
The DRAKE multiplicative weighting coefficients are applied by the weight processor 15b to the squared magnitudes of the correlation values. Because in a DRAKE receiver the weights are only 0 or 1, processor 15b can also be regarded as a tap selection device. The four weighted magnitudes for the shifts of the spreading code are then combined by an adder 16. It will be appreciated that more or fewer than four shifts of each spreading code may be processed to handle other multipath profiles. Setting selected ones of the weights to zero as in a DRAKE receiver eliminates the contribution of the respective correlation magnitudes from the output of the adder 16, and thus can be used to ignore rays that may have been deemed rarely to contain significant signal energy.
The sum of the weighted correlation magnitudes for the spreading code is provided to a comparator device 17 for identifying the transmitted symbol. For a communication system employing block codes as spreading code sequences, the set 14 of correlators would advantageously include a sufficient number of correlators to process simultaneously all code sequences and their shifts, which would be produced by the local code generators. A set of a squared-magnitude processor, a weight processor, and an adder would be provided for each different spreading code sequence. The outputs of the adders for the set of spreading codes would be provided to the comparator device 17.
For a system using block codes, the output of the comparator device 17 is an index value representing the spreading code that produced the largest adder output. In a system using 128 Walsh-Hadamard orthogonal spreading codes, the comparator device 17 examines 128 adder outputs, yielding seven bits of information. Walsh-Hadamard codes are advantageous because a Fast Walsh Transform (FWT) processor, such as that described in commonly assigned U.S. patent application Ser. No. 07/735,805, can produce the 128 correlations for each shift of the spreading codes very rapidly. The comparator device 17 can advantageously be implemented by the maximum search processor described in commonly assigned U.S. Pat. No. 5,187,675. The above-cited application and patent are expressly incorporated here by reference.
In the coherent RAKE receiver, the complex weights scale the correlation values to maximize the overall signal-to-noise-and-interference ratio, and bring them into phase so that they are coherently added by the accumulator 6. Each complex weight is optimal when it is the complex conjugate of the mean of its respective correlation value. It will be understood that the very concept of "mean value" implies that the underlying correlation value is static and only varies due to additive noise. Since at least the phase of each correlation (i.e., R.sub.Q (k)) varies due to relative motion between the receiver and transmitter, a device such as a phase-locked loop is usually used to track correlation variations in order to maintain the correct weight angle. In addition, the magnitudes of the complex weights should also track correlation value variations due to varying signal-reflection characteristics of the objects causing the echoes.
In a CDMA system using 128 Walsh-Hadamard orthogonal spreading codes, a non-coherent RAKE receiver expecting a four-signal multipath profile requires 1024 squaring computations to develop the squared magnitudes from the real and imaginary parts of the correlation values and 512 multiplications to apply the weights. For such a system and profile, a coherent RAKE receiver requires at least 2048 multiplications to apply the complex weights to the correlation values. From a processor hardware point of view, multiplication is generally more difficult than squaring because multiplication involves two input arguments rather than one. Therefore, a coherent RAKE receiver is typically more complicated than a non-coherent RAKE receiver.